Recent years have seen a significant increase in demand for multimedia applications. For example, increasing demand has been seen for multimedia applications used in conjunction with user access devices such as cell phones and mobile personal computers (PCs). Such multimedia applications include “real-time” video applications such as video conferencing, “streaming” video applications for downloading video clips over a network, and “off-line” transcoding applications.
Because user access devices such as cell phones and mobile PCs generally provide relatively low upload and download bandwidths, such devices typically employ video coding/compression formats such as MPEG-2, MPEG-4, H.263, or H.264 to reduce the transport time and storage requirements of video content accessed over the network. Some user access devices may also rely on media gateways in the network to run transcoding and transrating applications needed to perform video coding/compression. As employed herein, the term “media gateway” refers to a translation system, device, or service for converting digital media streams from one computer or communications network to another. Transcoding applications typically implement video processing operations to depacketize the data of video content accessed over the network, to decompress the video data from one coding/compression format (e.g., H.263) to a raw data stream, to re-compress the raw data stream to another coding/compression format (e.g., MPEG-4), and to re-packetize the video data for subsequent forwarding over the network, which can include broadband and mobile networks. Transrating applications may be employed to transform the bit rate of the video data to assure connectivity between the broadband and mobile networks. Media gateways can also be configured to run content adaptor applications for adapting the video content to the display capabilities of specific user access devices.
Stream-combination or stream-mixing applications and video/text overlay applications may also be employed to combine video streams and/or text while the video data is in its decompressed form. For example, media servers such as video conferencing servers may be configured to run stream-combination applications for receiving video content from multiple sources over the network, depacketizing the data of the video content, decompressing the video data to raw data streams, combining the raw data streams, and re-compressing and re-packetizing the video data for subsequent forwarding over the network to target conference devices, which may include one or more mobile devices. Further, media gateways and/or media servers may be configured to run video/text overlay applications for receiving video content over the network, depacketizing the data of the video content, decompressing the video data to a raw data stream, combining the raw data stream with data from additional content, such as content corresponding to a “text crawl” at the bottom of a display screen, and re-compressing and re-packetizing the video data for subsequent forwarding over the network to one or more user access devices.
Traditionally, providers of multimedia systems such as media servers, media gateways, video transcoders, content adaptation platforms, etc., have incorporated multimedia applications such as those described above separately into each system, with minimal reuse of the applications between the respective systems. Such multimedia applications can become tightly coupled with the multimedia systems configured to run them, making it difficult to replace one multimedia application with another, or to upgrade multimedia applications from one release to the next. Such multimedia applications may also be implemented in various multimedia systems in different ways. For example, providers of multimedia systems may employ different implementations of multimedia applications in their products based on the operating system that the multimedia system is running, making it difficult to reuse multimedia application code from one multimedia system in other multimedia systems. Such difficulties in reusing, replacing, and/or upgrading multimedia applications in multimedia systems can translate into higher production costs, increased development time, and slower time to market.
It would therefore be desirable to have systems and methods of developing and/or implementing multimedia applications in multimedia systems that avoid at least some of the drawbacks of the traditional approaches described above.